#include "Int8.h"

Int8::Int8(char valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

Int8::Int8(string valor) {
    this->_valor = atoi(valor.c_str());
    this->_punteroADato = &_valor;
}

Int8::Int8(void* punteroADato){
    this->_punteroADato = punteroADato;
}

void Int8::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    char* otroValor = (char*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << (int)_valor << " y se obtuvo " << (int)*otroValor << " . Diferencia: " << (int)(_valor - (*otroValor)) << endl;
}

char Int8::dameValor() {
    return this->_valor;
}

ClaseDeDato Int8::getClass() {
    return C_INTEGER_8;
}
